[package]
name = "server"
version = "0.1.0"
edition = "2021"
license = "MIT"
description = "Small microservice that implementes blob storage with SQLite backend and simple REST API"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
kernel = { path = "../kernel" }
tokio = { version = "1", features = ["full"] }
chrono = {version="0.4", default-features = false, features = ["serde", "clock", "std"]}
futures-util = "0.3"
blake3 = "1.3"
serde = { version = "1.0", features = ["derive"] }
zip = "0.6.4"
axum = { version = "0.6.18", features = ["multipart"] }
tokio-util = { version = "0.7.8", features = ["full"] }
futures = "0.3"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
tracing = "0.1"
tower = { version = "0.4", features = ["util", "timeout"] }
tower-http = { version = "0.4.0", features = ["add-extension", "limit", "trace"] }
utoipa = { version = "3.3.0", features = ["axum_extras"] }
utoipa-swagger-ui = { version = "3.1.3", features = ["axum"] }
rusqlite = { version = "0.29", features = ["bundled", "chrono", "blob"] }

[dev-dependencies]
rstest = "0.17.0"
reqwest = { version = "0.11", features = ["json", "multipart", "stream"] }
serde_json = "1.0"
http = "0.2.9"
test-context = "0.1.4"
async-trait = "0.1"
uuid = { version = "1.3.2", features = [
    "v4",                # Lets you generate random UUIDs
    "fast-rng",          # Use a faster (but still sufficiently random) RNG
    "macro-diagnostics", # Enable better diagnostics for compile-time UUIDs
]}
rand = "0.8.5"
url-escape = "0.1.1"
serial_test = "2.0.0"
urlencoding = "2.1.2"

